﻿package app.model 
{
	/**
	 * Осуществлеяет связ с данными
	 */
	import flash.events.*;
	import flash.net.NetConnection;
	import flash.net.Responder;
	 
	public class Qubix extends EventDispatcher
	{
		
		
		private var connection:NetConnection;
		private var responder:Responder;
		private var loginResponder:Responder;
		private var _typelang:String;
		private var _data:Object;
		
		public static var QUBIX_LOGIN:String = 'sender';
		public static var QUBIX_PASSWORD:String = '4GiCjNyiIOzC3yrYTAX0';
		public static var QUBIX_GATEWAY:String = RemoteProxy.DOMEN+'qubix/flash_gateway/gateway.php';
		
		public function Qubix() 
		{
			
			sendData();
		};
		
		public function sendData(lang:String = 'rus'):void 
		{
            _typelang = lang;
			
			responder = new Responder(onResult, onFault);
			loginResponder= new Responder(onResultLogin, onFaultLogin);
			connection = new NetConnection;
			connection.connect(QUBIX_GATEWAY);
			
			//connection.call("qubix_flash.login", loginResponder, QUBIX_LOGIN, QUBIX_PASSWORD);
			
			// TODO: пока без логина, чтобы экономить время
			connection.call('qubix_flash.getdata', responder, lang);
		}
		
		
		private function onResultLogin(result:Object):void
		{
			connection.call('qubix_flash.getdata', responder, _typelang);
		}
		
		private function onFaultLogin():void
		{
			trace('onFaultLogin');
		}
		
		private function onResult(result:Object):void 
		{
			////trace('onResult data',result);
			_data = new Object; // заводим новый объект, либо используем уже готовый
			_data = result; // результат делаем глобальным объектом. Здесь хранятся все данные
			
			dispatchEvent(new Event(Event.COMPLETE));
			
		}
		private function onFault(fault:Object):void 
		{
		    trace("Ошибка загрузки данных с кубика")
		}
		
		public function get data():Object { return _data; }
		
	}

}